package com.hnust.service;

import com.hnust.domain.*;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Callback;

import java.util.ArrayList;
import java.util.List;

/**
 * 创建人：zhangRuWang
 * 创建时间：2020/10/28
 * 描述：
 */
public interface TestPaperService {
    void getCourseData(Callback<Result<List<CourseData>>> callback, String id, String token);
    void getCourseQuesList(Callback<Result<List<QuestionType>>> callback,String token,String id);
    void getQuestion(Callback<Result<SubjectInfo>> callback,String token,String course_id,String type_id,String now_page);
    void getQuesByCon(Callback<Result<SubjectInfo>> callback,String token,String id,String course_id,String type_id,String keyword,Integer diff,String now_page);
    void checkPaperRepeat(Callback<Result<List<RepeatQues>>> callback,String token,String id,String course_id,List<String> subject_ids);
    void getPaperList(Callback<Result<PaperInfo>> callback, String token, String id, String course_id, int now_page);
//    void delTestPaper(Callback<Result<Integer>> callback,String token,List<String> paper_ids);

    Result<Object> deletePaper(ArrayList<String> paper_ids);

    Result<Object> changePaperType(ArrayList<String> paper_ids);

    Result<Object> removePaperType(ArrayList<String> paper_ids);

    void createPaper(Callback<Result<String>> callback,GeneratePaperInfoRecord generatePaperInfoRecord);
    void getPaperpic(Callback<ResponseBody> callback, String paperId);
    void getPaperdocx(Callback<ResponseBody> callback, String paperId);
    void getPaperAnswerdocx(Callback<ResponseBody> callback, String paperId);
    void getPaperPlandocx(Callback<ResponseBody> callback, String paperId);
    void getAutoPaper(Callback<Result<List<SubjectData>>> callback, String course_id, RequestBody list, String token);
    void setDiasbleQue(Callback<Result<Boolean>> callback,String token,List<String> subject_ids);

//    //有callback的发布考试
//    void releasePaper(Callback<Result<String>> callback,PublishPaperInfo publishPaperInfo);

    //教师端补充
    Result<List<Test>> getExamList(String subject, String pap_name); //查找

//    LinkedHashMap getAllExams(String subject, String pap_name);

    Result<List<Test>> getAllExams(); //初始化页面
    // 获取待批阅所有试卷列表
    Result<List<Test>> getNeedCorrectExams(String teaNum);
    //    获取待开始的试卷列表
    Result<List<Test>> getUnstartedExams(String teaNum);

    //paperCorect
    //获取考试信息
    Result<TestMessage> getTest(String paperId);
    //获取选择题
    Result<List<ChoiceTestQuestions>> getChoiceQuestions(String paperId);
    //获取判断题
    Result<List<JudgeTestQuestions>> getJudgeQuestions(String paperId);
    //获取填空题
    Result<List<GapTestQuestions>> getGapQuestions(String paperId);
    //获取简答题
    Result<List<EssayTestQuestions>> getEssayQuestions(String paperId);

    //无callback的发布考试
    Result<String> releasePaper(PublishPaperInfo publishPaperInfo);

}
